"""author: wangxin
   data: 2021/12/12
   project: cjh.py
"""
# 2、使用面向对象做一个ATM（存取款功能）
# ATM类
#   属性：钱、区域
#   方法：（存取）用户可以过来取钱，取了钱就会减少，用户的账户的钱也会减少
# 用户类
#   属性：用户名，密码,账户金额
# 要求： 菜单 有登录验证
from time import sleep


class ATM():
    money = 100000
    area = "changsha"

    def Menu(self):
        print("欢迎使用ATM机".center(50, "#"))
        print("1、取钱\n2、存钱\n3、退出")
        while 1:
            option = int(input("请根据您的需要输入功能编号1/2/3："))
            if option == 1:
                self.draw_money()
                break
            if option == 2:
                self.deposit()
                break
            if option == 3:
                print("已退出")
                break
            else:
                print("输入有误，请重新输入")
                continue

    def draw_money(self):
        dmoney = int(input("请输入你要取走的金额："))
        if dmoney <= ATM.money and dmoney <= self.money:
            self.money -= dmoney
            ATM.money -= dmoney
            sleep(1)
            print(f"取钱成功，您当前的余额为{self.money}")
            print(ATM.money)
            self.Menu()
        elif dmoney > ATM.money:
            print("ATM机余额不足，请重新输入")
            sleep(1)
            self.draw_money()
        elif dmoney > self.money:
            print("您的账户余额不足，请重新输入")
            sleep(1)
            self.draw_money()

    def deposit(self):
        smoney = int(input("请输入你要存入的金额："))
        self.money += smoney
        ATM.money += smoney
        print(f"存钱成功，您当前的余额为{self.money}")
        self.Menu()


class User(ATM):
    print("欢迎使用ATM机用户系统，即将为您跳转到注册界面")
    sleep(1)

    def __init__(self):
        self.username = None
        self.passwd = None
        self.money = None
        self.register()

    def register(self):
        print("注册界面".center(50, "#"))
        self.username = input("请输入你的用户名：")
        self.passwd = input("请输入你的密码：")
        self.money = int(input("请输入你的账户金额："))
        print(f"用户{self.username}注册成功!即将自动为您跳转到登录界面")
        sleep(1)
        self.login()

    def login(self):
        print("登录界面".center(50, "#"))
        username = input("请输入你的用户名：")
        passwd = input("请输入你的密码：")
        while 1:
            if username == self.username and passwd == self.passwd:
                print(f"{self.username}登录成功！即将为您跳转到ATM界面")
                sleep(1)
                self.Menu()
                break
            else:
                print("用户名或密码错误，请重新输入")
                self.login()
                continue
            break


User()
